<?php namespace app\admin\controller;

use houdunwang\request\Request;
use houdunwang\route\Controller;
use module\Wechat;
use system\model\Article as ArticleModel;
use system\model\Category;
use system\model\Keywords;

class Article extends Common{
    //使用Wechat类方法
    use Wechat;
    public function __construct()
    {
        //触发控制器中间件运行登录判断
        $this->auth();
    }

    //首页方法
    public function index(ArticleModel $article){

        //2.  获取属性结构数据分配数据
        $field = $article->paginate(6);
        //1. 显示模板文件
        return view('',compact('field'));
    }
    //添加 & 编辑
    public function post(ArticleModel $article,Category $category)
    {
        //2. 获取cate_id当前数据
        $arc_id = Request::get('arc_id',0,'intval');
       // p($arc_id);
        if(IS_POST){
            if($arc_id){
                //5. 获得arc_id该条数据
                $article = ArticleModel::find($arc_id);
                //p($article);die;
            }
            //3. 添加操作 获取所有post数据
            $post = Request::post();
            $res =  $article->save($post);
            //这步操作是为了添加文章0认为添加，所以写了这个   表达式？$arc_id : $res  0认为是false走$res 其它认为是true会存入到数据库
            $arc_id = $arc_id ? $arc_id : $res;
            //p($article);
            //添加关键词表数据
            $data = ['keywords'=>$post['arc_keyword'],'module_id'=>$arc_id,'module'=>'article'];
            $this->saveKeywords($data);
            //4. 提示成功
            $this->setRedirect('index')->success('操作成功');
        }
        //--------------------------------------------------------
        //检测点击get参数是否有arc_id 有则为编辑操作
        if($arc_id){
            //1.编辑操作 获取原有旧数据点击编辑便利显示旧数据
            $oldData = ArticleModel::find($arc_id);
            //p($oldData->toArray());
        }
        //2. 获取所有的栏目数据
        $cateData = $category->getAllCate();
//        p($cateData);
        //1. 显示模板文件
        return view('',compact('cateData','oldData'));
    }

    /**
     *  删除方法
     */
    public function remove(ArticleModel $article)
    {
        //1.获取文章表的arc_id
        $arc_id = Request::get('arc_id');
        //p($arc_id);
        //2. 执行删除动作
        $model =ArticleModel::find($arc_id);
        //2.5 获取Arctic表字段arc_keyword 对比 Keywords表中的keywords字段 如果一样就执行删除操作
        $res = Keywords::where('keywords',$model['arc_keyword'])->first();
        //3. 删除当前的数据对象
        $res->destory();
        $model->destory();
        //4. 跳转提示语
        return $this->setRedirect('index')->success('操作成功');
    }
}
